A histogram of oriented gradients (HoG) is a feature descriptor used in a variety of computer vision and image processing applications, such as object detection and object recognition applications. HoG descriptors have been particularly useful in detecting and recognizing, among other things, humans, animals, faces, and text. For example, an object detection system or an object recognition system can be configured to generate HoG descriptors that describe features of objects in an input image. The system can also be configured to compare the generated HoG descriptors against a database of HoG descriptors, corresponding to known objects, to determine whether any of the known objects is present in the input image. HoG descriptors are believed to be effective because they generally exhibit tolerance to rotations, scaling, and lighting variations in objects captured by images.
Unfortunately, generating a HoG descriptor from an image can be computationally expensive. A HoG descriptor is generally computed for a patch of an image, also referred to as a region of interest (ROI.) FIG. 1 shows a number of addition (ADD) operations, multiplication (MUL) operations, division (DIV) operations, square-root (sqrt) operations, and arc-tangent (arctan) operations performed to determine a HoG descriptor for an ROI having 42-by-42 pixels. The table in FIG. 1 illustrates that the HoG descriptor computation includes computing numerous costly mathematical functions, such as square-roots, divisions and arc-tangents, which may take many clock cycles to implement on a conventional sequential processor. Furthermore, the table also illustrates that the HoG descriptor computation also includes performing a large number of common operations, such as additions and multiplications. Therefore, the HoG descriptor computation is generally computationally expensive.
The high computational cost for computing a HoG descriptor can be a significant bottleneck in a variety of computer vision and image processing applications because these applications generally compute HoG descriptors for various positions in an image and for a variety of ROI sizes to account for scaling effects. Therefore, the use of HoG descriptors has been generally limited to high performance computing systems.